﻿/*
 * Lập phiếu đăng ký bán địa ốc
 * DONE 
 */
using BLL;
using DA;
using DevComponents.DotNetBar;
using DTO;
using MigraDoc.DocumentObjectModel;
using System;
using System.Collections.Generic;
using System.Drawing.Printing;
using System.Linq;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace GUI.View
{
    public partial class LapPhieuThuTien : UserControl
    {
        #region Khai bao
        // TODO
        private PrintDocument printDocument1 = new PrintDocument();

        private BaoBLL baoBLL;
        private MauSacDA mausacBLL;
        private ViTriBLL vitriBLL;
        private LoaiBangBLL loaibangBLL;
        private KichCoBangBLL kichcobangBLL;
        private ChiTietToBuomBLL chitiettobuomBLL;
        private SoLuongToBuomBLL soluongtobuomBLL;
        private NoiDungQCBLL noidungQCBLL;
        private QC_BangBLL QCbangBLL;
        private QCBaoBLL QCBaoBLL;
        private ToBuomBLL tobuomBLL;
        private PhieuDangKyBLL phieudangkyBLL;
        private ExportToPdf pdf;
        private ThamSoBLL thamsoBLL;
        private DiaOcBLL diaocBLL;
        private PhieuGiaHanBLL phieugiahanBLL;
        private ChiTietBangBLL chitietbangBLL;
        private ChiTietBaoBLL chitietbaoBLL;
        //tien phai tra khi dang ky ban dia oc
        public static float _tiendangky;

        //Kiem tra dang ky dich vu
        public static bool _kiemtraBao;
        public static bool _kiemtraBang;
        public static bool _kiemtraTobuom;

        //khach hang dia oc
        public static int _makh;
        public static string _email;
        public static string _sodt;
        public static string _diachi;
        public static string _hoten;
        public static int _madiaoc;
        public static string _loaidiaoc;
        public static string _diachidiaoc;
        public static string _huong;
        public static string _vitri;
        public static string _mota;
        public static string _giaban;
        public static float _dientichdat;
        public static float _dientichxaydung;
        //Bao
        public static string _tenbao;
        public static string _mausac;
        public static string _giatienbao;
        public static string _thuphathanh;
        public static string _vitribao;
        //Bang
        public static string _loaibang;
        public static string _kichco;
        public static string _giatienbang;
        //to buom
        public static string _soluong;
        public static string _giatientobuom;
        //thoi gian
        public static string _tungay;
        public static string _denngay;
        public static string _ngaybatdauphathanh;
        //tien
        public static string _tongtien;
        private float tienquangcaobao = 0;
        private float tienquangcaobang = 0;
        private float tienquangcaitobuom = 0;

        //kiem tra xem btnLapPhieuThu duoc chon tu form nao
        // 1 la tu form DangKy, 
        // 2 gia han, 
        // 3 cham dut,
        // 4 phieu thu tu form tiep nhan
        public static int _chon = 0;

        public static int _kiemtrahople = 0;
        /*
         *  0 hợp lệ
         *  1 đã bán
         *  2 chưa đk
         *  3 đã lập phiều thu
         */ 
        #endregion

        private AppCommands _Commands;
        /// <summary>
        /// Gets or sets the commands associated with the control.
        /// </summary>
        public AppCommands Commands
        {
            get { return _Commands; }
            set
            {
                if (value != _Commands)
                {
                    AppCommands oldValue = _Commands;
                    _Commands = value;
                    OnCommandsChanged(oldValue, value);
                }
            }
        }
        /// <summary>
        /// Called when Commands property has changed.
        /// </summary>
        /// <param name="oldValue">Old property value</param>
        /// <param name="newValue">New property value</param>
        protected virtual void OnCommandsChanged(AppCommands oldValue, AppCommands newValue)
        {
            if (newValue != null)
            {
                //MessageBox.Show("in");
                btnCancel.Command = newValue.LapPhieuThuTienCommands.Cancel;
            }
            else
            {
                btnCancel.Command = null;
            }
        }
        // constructor
        public LapPhieuThuTien()
        {
            InitializeComponent();
            baoBLL = new BaoBLL();
            mausacBLL = new MauSacDA();
            vitriBLL = new ViTriBLL();
            loaibangBLL = new LoaiBangBLL();
            kichcobangBLL = new KichCoBangBLL();
            chitiettobuomBLL = new ChiTietToBuomBLL();
            soluongtobuomBLL = new SoLuongToBuomBLL();
            noidungQCBLL = new NoiDungQCBLL();
            QCbangBLL = new QC_BangBLL();
            QCBaoBLL = new QCBaoBLL();
            tobuomBLL = new ToBuomBLL();
            phieudangkyBLL = new PhieuDangKyBLL();
            thamsoBLL  = new ThamSoBLL();
            diaocBLL = new DiaOcBLL();
            phieugiahanBLL = new PhieuGiaHanBLL();
            chitietbangBLL = new ChiTietBangBLL();
            chitietbaoBLL = new ChiTietBaoBLL();
        }

        // on load
        public void loadinfo()
        {
            //kiểm tra tính hợp lệ

            if (_kiemtrahople ==1)
            {
                ToastNotification.Show(this, "Địa Ốc Đã Được Bán", eToastPosition.MiddleCenter);
                return;
            }
            if (_kiemtrahople == 2)
            {
                ToastNotification.Show(this, "Địa Ốc Chưa Đăng Ký", eToastPosition.MiddleCenter);
                return;
            }

            string tinhtrang = phieudangkyBLL.GetTinhTrangThanhToan(txtMaDiaOc.Text);
            if (_kiemtrahople == 3)
            {
                ToastNotification.Show(this, "Đã Lập Phiếu Thu", eToastPosition.MiddleCenter);
                return;
            }

            if (_chon == 1)//neu lap phieu thu tu form dang ky
            {
                gpTenXuLy.Text = "Lập Phiếu Thu Tiền";
                lblNgayGiaHan.Visible = false;
                dateTime_NgayGiaHan.Visible = false;
                lblDenNgayMoi.Visible = false;
                dateTime_DenNgayMoi.Visible = false;
                btnGiaHan.Enabled = false;
                btnChamDutHopDong.Enabled = false;
                #region Kiem Tra Dich Vu Dang Ky
                if (!_kiemtraBang)
                    gpBang.Visible = false;
                else
                {
                    //bang
                    txtLoaiBang.Text = _loaibang;
                    txtKichCo.Text = _kichco;
                    txtGiaTienBang.Text = _giatienbang;
                    tienquangcaobang = float.Parse(_giatienbang);
                }
                if (!_kiemtraBao)
                    gpBao.Visible = false;
                else
                {
                    //bao
                    txtTenBao.Text = _tenbao;
                    txtMauSac.Text = _mausac;
                    txtGiaTienBao.Text = _giatienbao;
                    txtThuPhatHanh.Text = _thuphathanh;
                    txtViTriBao.Text = _vitribao;
                    txtTongTien.Text = _tongtien;
                    tienquangcaobao = float.Parse(_giatienbao);
                    dateTime_NgayPhatHanh.Text = _ngaybatdauphathanh;
                }
                if (!_kiemtraTobuom)
                    gpToBuom.Visible = false;
                else
                {
                    //to buom
                    txtSoLuong.Text = _soluong;
                    txtGiaTienToBuom.Text = _giatientobuom;
                    tienquangcaitobuom = float.Parse(_giatientobuom);
                }
                #endregion

                #region Load thong tin
                //thong tin dang ky thoi gian
                dateTime_TuNgay.Text = _tungay;
                dateTime_DenNgay.Text = _denngay;
                // dateTime_DenNgay.Text = DangKyBanDiaOc._denngay;
                txtGiaTien.Text = _tiendangky.ToString();

                //load thong tin khach hang
                txtHoTen.Text = _hoten;
                cbbMaKH.Text = _makh.ToString();
                txtSoDienThoai.Text = _sodt;
                txtEmail.Text = _email;
                txtDiaChi.Text = _diachi;

                txtMaPhieuDangKy.Text = DangKyBanDiaOc._maphieudangky.ToString();

                //load thong tin dia oc
                txtMaDiaOc.Text = _madiaoc.ToString();
                txtLoaiDiaOc.Text = _loaidiaoc;
                txtDiaChiDiaOc.Text = _diachidiaoc;
                txtDienTichDat.Text = _dientichdat.ToString();
                txtDienTichXayDung.Text = _dientichxaydung.ToString();
                txtHuong.Text = _huong;
                txtViTriDiaOc.Text = _vitri;
                txtGiaBanDiaOc.Text = _giaban;
                txtMoTa.Text = _mota;
                //
                txtTongTien.Text = (float.Parse(txtGiaTien.Text.Trim()) + tienquangcaitobuom + tienquangcaobang + tienquangcaobao).ToString();
                //_chon = 0;
                #endregion
            }
            #region Neu Gia han hop dong tu form Tiep nhan dia oc
            else if (_chon == 2)
            {
                gpTenXuLy.Text = "Lập Phiếu Gia Hạn";
                float sotiengiam = (1 - float.Parse(thamsoBLL.GetGiaTienGiamToiDa()));

                btnChamDutHopDong.Enabled = false;
                btnThanhToan.Enabled = false;

                int thoihandangky = Int32.Parse(thamsoBLL.GetSoNgayDangKy());
                dateTime_DenNgayMoi.Value = DateTime.Now.AddDays(thoihandangky);
                dateTime_NgayGiaHan.Value = DateTime.Now;
                //load thong tin khach hang
                txtHoTen.Text = _hoten;
                cbbMaKH.Text = _makh.ToString();
                txtSoDienThoai.Text = _sodt;
                txtEmail.Text = _email;
                txtDiaChi.Text = _diachi;

                txtMaPhieuDangKy.Text = DangKyBanDiaOc._maphieudangky.ToString();

                //load thong tin dia oc
                txtMaDiaOc.Text = _madiaoc.ToString();
                txtLoaiDiaOc.Text = _loaidiaoc;
                txtDiaChiDiaOc.Text = _diachidiaoc;
                txtDienTichDat.Text = _dientichdat.ToString();
                txtDienTichXayDung.Text = _dientichxaydung.ToString();
                txtHuong.Text = _huong;
                txtViTriDiaOc.Text = _vitri;
                txtGiaBanDiaOc.Text = _giaban;
                txtMoTa.Text = _mota;

                //lay thoi gian

                // DELETE
                //string queryThoigian = String.Format("Select TuNgay,DenNgay from PHIEUDANGKY where MaDiaOc='{0}'", txtMaDiaOc.Text);
                //string[] a = new string[2];
                //a = myqueryDA.getArrValues(queryThoigian);

                dateTime_TuNgay.Text = phieudangkyBLL.GetTuNgay(txtMaDiaOc.Text);
                dateTime_DenNgay.Text = phieudangkyBLL.GetDennNgay(txtMaDiaOc.Text);

                //lay ma phieu dnag ky

                //string queryMaphieudangky = String.Format("Select MaPhieuDangKy from PHIEUDANGKY where MaDiaOc='{0}'", txtMaDiaOc.Text);
                //txtMaPhieuDangKy.Text = myqueryDA.getValues(queryMaphieudangky);

                txtMaPhieuDangKy.Text = phieudangkyBLL.GetMaPhieuDangKy(txtMaDiaOc.Text).ToString();

                //lay tt quang cao bang
                int machitietbang = phieudangkyBLL.getMaChiTietBang(txtMaDiaOc.Text);
                if (machitietbang == 1)
                    gpBang.Visible = false;
                else
                {
                    string[] a = new string[3];
                    a = chitietbangBLL.getInfo(machitietbang);
                    txtLoaiBang.Text = a[0];
                    txtKichCo.Text = a[1];
                    txtGiaTienBang.Text = a[2];
                    tienquangcaobang = float.Parse(a[2]);

                }

                //lay thong tin quang cao bao
                int machitietbao = phieudangkyBLL.getMaChiTietBao(txtMaDiaOc.Text);
                if (machitietbao == 1)
                    gpBao.Visible = false;
                else
                {
                    string[] a = new string[7];
                    a = chitietbaoBLL.getInfo(machitietbao);
                    txtTenBao.Text = a[0];
                    txtThuPhatHanh.Text = a[1];
                    txtMauSac.Text = a[2];
                    txtViTriBao.Text = a[3];
                    txtGiaTienBao.Text = a[4];
                    tienquangcaobao = float.Parse(a[4]);
                    if (a[5].Equals("True"))
                        cbHinhAnh.Checked = true;
                    dateTime_NgayPhatHanh.Text = a[6];
                }

                //lay thong tin quang cao to buom
                int machitiettobuom = phieudangkyBLL.getMaChiTietToBuom(txtMaDiaOc.Text);
                if (machitiettobuom == 1)
                    gpToBuom.Visible = false;
                else
                {
                    string[] a = new string[2];
                    a = chitiettobuomBLL.getInfo(machitiettobuom);
                    txtSoLuong.Text = a[0];
                    txtGiaTienToBuom.Text = a[1];
                    tienquangcaitobuom = float.Parse(a[1]);
                }

                //gia tien dang ky
                //const string queryTiendangky = "select GiaTienDangKy from THAMSO";
                //txtGiaTien.Text = (float.Parse(myqueryDA.getValues(queryTiendangky))).ToString();
                //txtTongTien.Text = ((float.Parse(txtGiaTien.Text) + tienquangcaitobuom + tienquangcaobang + tienquangcaobao) * sotiengiam).ToString();

                txtGiaTien.Text = thamsoBLL.GetGiaTienDangKy();
                txtTongTien.Text = ((float.Parse(txtGiaTien.Text) + tienquangcaitobuom + tienquangcaobang + tienquangcaobao) * sotiengiam).ToString();

                //_chon = 0;

            #endregion
            }
            #region Cham dut hop dong
            else if (_chon == 3)
            {
                //const string laysotiengiam = "select GiaTienGiamToiDa from THAMSO";
                float sotiengiam = (1 - float.Parse(thamsoBLL.GetGiaTienGiamToiDa()));
                gpTenXuLy.Text = "Chấm Dứt Hợp Đồng";
                //lblNgayGiaHan.Visible = false;
                //dateTime_NgayGiaHan.Visible = false;
                lblDenNgayMoi.Visible = false;
                dateTime_DenNgayMoi.Visible = false;
                btnThanhToan.Enabled = false;
                btnGiaHan.Enabled = false;
                //string _queryThoihandangky = "select SoNgayDangKy from THAMSO";
                //int thoihandangky = Int32.Parse(myqueryDA.getValues(_queryThoihandangky));
                //dateTime_DenNgayMoi.Value = DateTime.Now.AddDays(thoihandangky);
                //dateTime_NgayGiaHan.Value = DateTime.Now;
                //load thong tin khach hang
                txtHoTen.Text = _hoten;
                cbbMaKH.Text = _makh.ToString();
                txtSoDienThoai.Text = _sodt;
                txtEmail.Text = _email;
                txtDiaChi.Text = _diachi;

                txtMaPhieuDangKy.Text = DangKyBanDiaOc._maphieudangky.ToString();

                //load thong tin dia oc
                txtMaDiaOc.Text = _madiaoc.ToString();
                txtLoaiDiaOc.Text = _loaidiaoc;
                txtDiaChiDiaOc.Text = _diachidiaoc;
                txtDienTichDat.Text = _dientichdat.ToString();
                txtDienTichXayDung.Text = _dientichxaydung.ToString();
                txtHuong.Text = _huong;
                txtViTriDiaOc.Text = _vitri;
                txtGiaBanDiaOc.Text = _giaban;
                txtMoTa.Text = _mota;

                //lay thoi gian
                //string queryThoigian = String.Format("Select TuNgay,DenNgay from PHIEUDANGKY where MaDiaOc='{0}'", txtMaDiaOc.Text);
                //string[] a = new string[2];
                //a = myqueryDA.getArrValues(queryThoigian);
                //dateTime_TuNgay.Text = a[0];
                //dateTime_DenNgay.Text = a[1];


                dateTime_TuNgay.Text = phieudangkyBLL.GetTuNgay(txtMaDiaOc.Text);
                dateTime_DenNgay.Text = phieudangkyBLL.GetDennNgay(txtMaDiaOc.Text);



                dateTime_NgayGiaHan.Text = phieugiahanBLL.getNgayGiaHan(txtMaPhieuDangKy.Text);

                //lay ma phieu dnag ky
                //string queryMaphieudangky = String.Format("Select MaPhieuDangKy from PHIEUDANGKY where MaDiaOc='{0}'", txtMaDiaOc.Text);
                //txtMaPhieuDangKy.Text = myqueryDA.getValues(queryMaphieudangky);
                txtMaPhieuDangKy.Text = phieudangkyBLL.GetMaPhieuDangKy(txtMaDiaOc.Text).ToString();

                //lay tt quang cao bang
                int machitietbang = phieudangkyBLL.getMaChiTietBang(txtMaDiaOc.Text);
                if (machitietbang == 1)
                    gpBang.Visible = false;
                else
                {
                    string[] a = new string[3];
                    a = chitietbangBLL.getInfo(machitietbang);
                    txtLoaiBang.Text = a[0];
                    txtKichCo.Text = a[1];
                    txtGiaTienBang.Text = a[2];
                    tienquangcaobang = float.Parse(a[2]);

                }

                //lay thong tin quang cao bao
                int machitietbao = phieudangkyBLL.getMaChiTietBao(txtMaDiaOc.Text);
                if (machitietbao == 1)
                    gpBao.Visible = false;
                else
                {
                    string[] a = new string[7];
                    a = chitietbaoBLL.getInfo(machitietbao);
                    txtTenBao.Text = a[0];
                    txtThuPhatHanh.Text = a[1];
                    txtMauSac.Text = a[2];
                    txtViTriBao.Text = a[3];
                    txtGiaTienBao.Text = a[4];
                    tienquangcaobao = float.Parse(a[4]);
                    if (a[5].Equals("True"))
                        cbHinhAnh.Checked = true;
                    dateTime_NgayPhatHanh.Text = a[6];

                }

                //lay thong tin quang cao to buom

                int machitiettobuom = phieudangkyBLL.getMaChiTietToBuom(txtMaDiaOc.Text);
                if (machitiettobuom == 1)
                    gpToBuom.Visible = false;
                else
                {
                    string[] a = new string[2];
                    a = chitiettobuomBLL.getInfo(machitiettobuom);
                    txtSoLuong.Text = a[0];
                    txtGiaTienToBuom.Text = a[1];
                    tienquangcaitobuom = float.Parse(a[1]);
                }
                int maphieugiahan = phieugiahanBLL.getMaPhieuGiaHan(txtMaPhieuDangKy.Text);
                if (maphieugiahan == 0)
                {
                    //const string queryTiendangky = "select GiaTienDangKy from THAMSO";
                    //txtGiaTien.Text = (float.Parse(myqueryDA.getValues(queryTiendangky))).ToString();
                    txtGiaTien.Text = thamsoBLL.GetGiaTienDangKy();
                    txtTongTien.Text = (float.Parse(txtGiaTien.Text) + tienquangcaitobuom + tienquangcaobang + tienquangcaobao).ToString();
                    //_chon = 0;
                }
                else
                {
                    //const string queryTiendangky = "select GiaTienDangKy from THAMSO";
                    //txtGiaTien.Text = (float.Parse(myqueryDA.getValues(queryTiendangky))).ToString();
                    txtGiaTien.Text = thamsoBLL.GetGiaTienDangKy();
                    txtTongTien.Text = ((float.Parse(txtGiaTien.Text) + tienquangcaitobuom + tienquangcaobang + tienquangcaobao) * sotiengiam).ToString();
                    //_chon = 0;
                }

                //gia tien dang ky

            #endregion

            }
            #region Lap phieu thu tu form tiep nhan
            else if (_chon == 4)
            {
                gpTenXuLy.Text = "Lập Phiếu Thu Tiền";
                lblNgayGiaHan.Visible = false;
                dateTime_NgayGiaHan.Visible = false;
                lblDenNgayMoi.Visible = false;
                dateTime_DenNgayMoi.Visible = false;
                btnGiaHan.Enabled = false;
                btnChamDutHopDong.Enabled = false;
                //load thong tin khach hang
                txtHoTen.Text = _hoten;
                cbbMaKH.Text = _makh.ToString();
                txtSoDienThoai.Text = _sodt;
                txtEmail.Text = _email;
                txtDiaChi.Text = _diachi;

                txtMaPhieuDangKy.Text = DangKyBanDiaOc._maphieudangky.ToString();

                //load thong tin dia oc
                txtMaDiaOc.Text = _madiaoc.ToString();
                txtLoaiDiaOc.Text = _loaidiaoc;
                txtDiaChiDiaOc.Text = _diachidiaoc;
                txtDienTichDat.Text = _dientichdat.ToString();
                txtDienTichXayDung.Text = _dientichxaydung.ToString();
                txtHuong.Text = _huong;
                txtViTriDiaOc.Text = _vitri;
                txtGiaBanDiaOc.Text = _giaban;
                txtMoTa.Text = _mota;

                //lay thoi gian
                //string queryThoigian = String.Format("Select TuNgay,DenNgay from PHIEUDANGKY where MaDiaOc='{0}'", txtMaDiaOc.Text);
                //string[] a = new string[2];
                //a = myqueryDA.getArrValues(queryThoigian);
                // dateTime_TuNgay.Text = a[0];
                //dateTime_DenNgay.Text = a[1];

                dateTime_TuNgay.Text = phieudangkyBLL.GetTuNgay(txtMaDiaOc.Text);
                dateTime_DenNgay.Text = phieudangkyBLL.GetDennNgay(txtMaDiaOc.Text);


                //lay ma phieu dnag ky
                //string queryMaphieudangky = String.Format("Select MaPhieuDangKy from PHIEUDANGKY where MaDiaOc='{0}'", txtMaDiaOc.Text);
                //txtMaPhieuDangKy.Text = myqueryDA.getValues(queryMaphieudangky);
                txtMaPhieuDangKy.Text = phieudangkyBLL.GetMaPhieuDangKy(txtMaDiaOc.Text).ToString();

                //lay tt quang cao bang
                int machitietbang = phieudangkyBLL.getMaChiTietBang(txtMaDiaOc.Text);
                if (machitietbang == 1)
                    gpBang.Visible = false;
                else
                {
                    string[] a = new string[3];
                    a = chitietbangBLL.getInfo(machitietbang);
                    txtLoaiBang.Text = a[0];
                    txtKichCo.Text = a[1];
                    txtGiaTienBang.Text = a[2];
                    tienquangcaobang = float.Parse(a[2]);

                }

                //lay thong tin quang cao bao
                int machitietbao = phieudangkyBLL.getMaChiTietBao(txtMaDiaOc.Text);
                if (machitietbao == 1)
                    gpBao.Visible = false;
                else
                {
                    string[] a = new string[7];
                    a = chitietbaoBLL.getInfo(machitietbao);
                    txtTenBao.Text = a[0];
                    txtThuPhatHanh.Text = a[1];
                    txtMauSac.Text = a[2];
                    txtViTriBao.Text = a[3];
                    txtGiaTienBao.Text = a[4];
                    tienquangcaobao = float.Parse(a[4]);
                    if (a[5].Equals("True"))
                        cbHinhAnh.Checked = true;
                    dateTime_NgayPhatHanh.Text = a[6];
                    //txtTenBao.Text = a[5];
                    //txtTenBao.Text = a[6];

                }

                //lay thong tin quang cao to buom
                int machitiettobuom = phieudangkyBLL.getMaChiTietToBuom(txtMaDiaOc.Text);
                if (machitiettobuom == 1)
                    gpToBuom.Visible = false;
                else
                {
                    string[] a = new string[2];
                    a = chitiettobuomBLL.getInfo(machitiettobuom);
                    txtSoLuong.Text = a[0];
                    txtGiaTienToBuom.Text = a[1];
                    tienquangcaitobuom = float.Parse(a[1]);
                }

                //gia tien dang ky
                //const string queryTiendangky = "select GiaTienDangKy from THAMSO";
                //txtGiaTien.Text = myqueryDA.getValues(queryTiendangky);
                txtGiaTien.Text = thamsoBLL.GetGiaTienDangKy();
                txtTongTien.Text = (float.Parse(txtGiaTien.Text) + tienquangcaitobuom + tienquangcaobang + tienquangcaobao).ToString();
            #endregion
            }

        }

        private void LapPhieuThuTien_Load(object sender, EventArgs e)
        {
            saveFileDialog.DefaultExt = "pdf";
            saveFileDialog.Title = "Save file pdf";
            saveFileDialog.Filter = "pdf file (.pdf)|*.pdf|txt file (.txt )|*.txt|CSharp (.cs)|*.cs|C++(.cpp)|*.cpp| All file(*.*)|*.*";

            loadinfo();
            
        }

        private void btnThanhToan_Click(object sender, EventArgs e)
        {
            //if ((myqueryDA.getId("select TinhTrangThanhToan from PHIEUDANGKY where MaPhieuDangKy='" + Convert.ToInt32(txtMaPhieuDangKy.Text) + "'")) == 1)
            if (phieudangkyBLL.GetTinhTrangThanhToan(txtMaPhieuDangKy.Text).Equals("True") )
            {
                ToastNotification.Show(this, "Đã Thanh Toán", eToastPosition.MiddleCenter);
                return;
            }
            DialogResult dialogResult = MessageBox.Show("Bạn Chắc Không, Chọn Yes để tiếp tục?", "Thanh Toán", MessageBoxButtons.YesNo);
            if (dialogResult == DialogResult.Yes)
            {

                //string queryTinhtrang = String.Format("update PHIEUDANGKY set TinhTrangThanhToan='1' where MaPhieuDangKy='{0}'", Convert.ToInt32(txtMaPhieuDangKy.Text));
                //if (myqueryDA.doNonQuery(queryTinhtrang))
                if (phieudangkyBLL.ThanhToan(txtMaPhieuDangKy.Text))
                {
                    ToastNotification.Show(this, "Thanh toán thành công", eToastPosition.MiddleCenter);
                    //lblThongBao.Text = "Đã Thanh Toán";
                    //lblThongBao.ForeColor = Color.Red;
                }
                else
                    ToastNotification.Show(this, "Thanh toán thất bại", eToastPosition.MiddleCenter);
            }
            else if (dialogResult == DialogResult.No)
            {
                MessageBox.Show("Bạn đã hủy việc Gia Hạn");
                //TODO hủy gian hạn
            }

            //txtTongTien.Text = "0";

        }

        private void btnGiaHan_Click(object sender, EventArgs e)
        {
            //kiem tra xem dia oc da het han dang ky chua
            //string _kiemtrathoihan = String.Format("select DenNgay from PHIEUDANGKY where MaDiaOc='{0}'", txtMaDiaOc.Text);
            //string kiemtrathoihan = myqueryDA.getValues(_kiemtrathoihan);
            string kiemtrathoihan = phieudangkyBLL.GetDennNgay(txtMaDiaOc.Text);
            string dodaichuoi = kiemtrathoihan.Substring(0, 10);
            string[] ngaythangnamHetHan = dodaichuoi.Split('/');
            int namhientai = DateTime.Now.Year;// + "/" + DateTime.Now.Month + "/" + DateTime.Now.Day;
            int thanghientai = DateTime.Now.Month;
            int ngayhientai = DateTime.Now.Day;
            //int _maphieudangky = myqueryDA.getId(String.Format("select MaPhieuDangKy from PHIEUDANGKY where MaDiaOc='{0}'", txtMaDiaOc));
            int _maphieudangky = phieudangkyBLL.GetMaPhieuDangKy(txtMaDiaOc.Text);
            if (namhientai > Int32.Parse(ngaythangnamHetHan[2]))
            {
                //string _queryThoihandangky = "select SoNgayDangKy from THAMSO";
                //int thoihandangky = Int32.Parse(myqueryDA.getValues(_queryThoihandangky));
                //dateTime_NgayGiaHan.Value = DateTime.Now.AddDays(thoihandangky);
                
                //HACK PhieuDangKyDTO dk = new PhieuDangKyDTO(_maphieudangky, ngaygiahan);
                PhieuDangKyDTO dk = new PhieuDangKyDTO(_maphieudangky,dateTime_NgayGiaHan.Value);

                string ngaygiahan = String.Format("{0}/{1}/{2}", dateTime_NgayGiaHan.Value.Year, dateTime_NgayGiaHan.Value.Month, dateTime_NgayGiaHan.Value.Day);
                DialogResult dialogResult = MessageBox.Show("Bạn Chắc Không, Chọn Yes để tiếp tục?", "Gia Hạn Đăng Ký", MessageBoxButtons.YesNo);
                if (dialogResult == DialogResult.Yes)
                {
                    if (phieudangkyBLL.giahanphieudangky(dk))
                    {
                        //string queryGiahan = String.Format("insert into PHIEUGIAHAN values('{0}','{1}','{2}'); select SCOPE_IDENTITY();", int.Parse(txtMaPhieuDangKy.Text.Trim()), ngaygiahan, float.Parse(txtTongTien.Text));
                        PhieuGiaHanDTO phieugiahan = new PhieuGiaHanDTO(Int32.Parse(txtMaPhieuDangKy.Text),dateTime_NgayGiaHan.Value, float.Parse(txtTongTien.Text));
                 
                        //if (myqueryDA.doNonQuery(queryGiahan))
                        if (phieugiahanBLL.Add(phieugiahan)>0)
                        {
                            ToastNotification.Show(this, "Gia Hạn Thành Công", eToastPosition.MiddleCenter);
                            btnThanhToan.Enabled = true;
                            return;
                        }
                        else
                        {
                            ToastNotification.Show(this, "Lỗi", eToastPosition.MiddleCenter);
                            return;
                        }
                    }
                    else
                    {
                        ToastNotification.Show(this, "Lỗi", eToastPosition.MiddleCenter);
                        return;
                    }
                }
                else if (dialogResult == DialogResult.No)
                {
                    MessageBox.Show("Bạn đã hủy việc Gia Hạn");
                    //do something else
                }



            }
            else if (namhientai == Int32.Parse(ngaythangnamHetHan[2]) && thanghientai > Int32.Parse(ngaythangnamHetHan[1]))
            {
                //const string _queryThoihandangky = "select SoNgayDangKy from THAMSO";
                //int thoihandangky = Int32.Parse(myqueryDA.getValues(_queryThoihandangky));
                int thoihandangky = Int32.Parse( thamsoBLL.GetSoNgayDangKy());
                dateTime_NgayGiaHan.Value = DateTime.Now.AddDays(thoihandangky);
                //string ngaygiahan = String.Format("{0}/{1}/{2}", dateTime_NgayGiaHan.Value.Year, dateTime_NgayGiaHan.Value.Month, dateTime_NgayGiaHan.Value.Day);
                //HACK PhieuDangKyDTO dk = new PhieuDangKyDTO(_maphieudangky, ngaygiahan);
                PhieuDangKyDTO dk = new PhieuDangKyDTO(_maphieudangky, dateTime_NgayGiaHan.Value);
                DialogResult dialogResult = MessageBox.Show("Bạn Chắc Không, Chọn Yes để tiếp tục?", "Gia Hạn Đăng Ký", MessageBoxButtons.YesNo);
                if (dialogResult == DialogResult.Yes)
                {
                    if (phieudangkyBLL.giahanphieudangky(dk))
                    {
                        //string queryGiahan = String.Format("insert into PHIEUGIAHAN values('{0}','{1}','{2}'); select SCOPE_IDENTITY();", 
                        //int.Parse(txtMaPhieuDangKy.Text.Trim()), ngaygiahan, float.Parse(txtTongTien.Text));
                        PhieuGiaHanDTO phieugiahan = new PhieuGiaHanDTO(Int32.Parse(txtMaPhieuDangKy.Text),dateTime_NgayGiaHan.Value, float.Parse(txtTongTien.Text));
                        //if (myqueryDA.doNonQuery(queryGiahan))
                        if (phieugiahanBLL.Add(phieugiahan)>0)
                        {
                            ToastNotification.Show(this, "Gia Hạn Thành Công", eToastPosition.MiddleCenter);
                            btnThanhToan.Enabled = true;
                            return;
                        }
                        else
                        {
                            ToastNotification.Show(this, "Lỗi", eToastPosition.MiddleCenter);
                            return;
                        }
                    }
                    else
                    {
                        ToastNotification.Show(this, "Lỗi", eToastPosition.MiddleCenter);
                        return;
                    }
                }
                else if (dialogResult == DialogResult.No)
                {
                    MessageBox.Show("Bạn đã hủy việc Gia Hạn");
                    //do something else
                }
            }
            else if (thanghientai == Int32.Parse(ngaythangnamHetHan[1]) && ngayhientai > Int32.Parse(ngaythangnamHetHan[0]))
            {
                //const string _queryThoihandangky = "select SoNgayDangKy from THAMSO";
                //int thoihandangky = Int32.Parse(myqueryDA.getValues(_queryThoihandangky));
                int thoihandangky = Int32.Parse(thamsoBLL.GetSoNgayDangKy());
                dateTime_NgayGiaHan.Value = DateTime.Now.AddDays(thoihandangky);
                //string ngaygiahan = String.Format("{0}/{1}/{2}", dateTime_NgayGiaHan.Value.Year, dateTime_NgayGiaHan.Value.Month, dateTime_NgayGiaHan.Value.Day);
                //HACK DangKy dk = new DangKy(_maphieudangky, ngaygiahan);
                PhieuDangKyDTO dk = new PhieuDangKyDTO(_maphieudangky, dateTime_NgayGiaHan.Value);
                DialogResult dialogResult = MessageBox.Show("Bạn Chắc Không, Chọn Yes để tiếp tục?", "Gia Hạn Đăng Ký", MessageBoxButtons.YesNo);
                if (dialogResult == DialogResult.Yes)
                {
                    if (phieudangkyBLL.giahanphieudangky(dk))
                    {
                        //string queryGiahan = String.Format("insert into PHIEUGIAHAN values('{0}','{1}','{2}'); select SCOPE_IDENTITY();", 
                        //    int.Parse(txtMaPhieuDangKy.Text.Trim()), 
                        //    ngaygiahan, 
                        //    float.Parse(txtTongTien.Text));
                        PhieuGiaHanDTO phieugiahan = new PhieuGiaHanDTO(int.Parse(txtMaPhieuDangKy.Text.Trim()), dateTime_NgayGiaHan.Value, float.Parse(txtTongTien.Text));
                        
                        //if (myqueryDA.doNonQuery(queryGiahan))
                        if (phieugiahanBLL.Add(phieugiahan)>0)
                        {
                            ToastNotification.Show(this, "Gia Hạn Thành Công", eToastPosition.MiddleCenter);
                            btnThanhToan.Enabled = true;
                            return;
                        }
                        else
                        {
                            ToastNotification.Show(this, "Lỗi", eToastPosition.MiddleCenter);
                            return;
                        }
                    }
                    else
                    {
                        ToastNotification.Show(this, "Lỗi", eToastPosition.MiddleCenter);
                        return;
                    }
                }
                else if (dialogResult == DialogResult.No)
                {
                    MessageBox.Show("Bạn đã hủy việc Gia Hạn");
                    //do something else
                }
            }
            else
            {
                ToastNotification.Show(this, "Địa Ốc Chưa Hết Hạn, Không Thể Gia Hạn", eToastPosition.MiddleCenter);
                return;
            }
        }

        private void btnChamDutHopDong_Click(object sender, EventArgs e)
        {
            DialogResult dialogResult = MessageBox.Show("Bạn Chắc Không, Chọn Yes để tiếp tục?", "Chấm Dứt Hợp Đồng", MessageBoxButtons.YesNo);
            if (dialogResult == DialogResult.Yes)
            {
                //string queryupdate = String.Format("update DIAOC set TrangThaiBan='1' where MaDiaOc='{0}'", txtMaDiaOc.Text);
                //myqueryDA.doNonQuery(queryupdate);
                diaocBLL.Ban(txtMaDiaOc.Text);
                //string ngaychamduthopdong = String.Format("{0}/{1}/{2}", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
               // DangKy dk = new DangKy(Int32.Parse(txtMaPhieuDangKy.Text), ngaychamduthopdong);
                PhieuDangKyDTO dk = new PhieuDangKyDTO(Int32.Parse(txtMaPhieuDangKy.Text), DateTime.Today);
                if (phieudangkyBLL.giahanphieudangky(dk))
                {
                    ToastNotification.Show(this, "Thành Công", eToastPosition.MiddleCenter);
                    return;
                }

            }
            else if (dialogResult == DialogResult.No)
            {
                MessageBox.Show("Bạn đã hủy việc Chấm Dứt Hợp Đồng");
                //do something else
            }
            //DiaOc _do=new DiaOc(Convert.ToInt32(txtMaDiaOc.Text.Trim()),1);


        }

        private void In_Click(object sender, EventArgs e)
        {
            string tungay = String.Format("{0}/{1}/{2}", dateTime_TuNgay.Value.Year, dateTime_TuNgay.Value.Month, dateTime_TuNgay.Value.Day);
            string denngay = String.Format("{0}/{1}/{2}", dateTime_DenNgay.Value.Year, dateTime_DenNgay.Value.Month, dateTime_DenNgay.Value.Day);
            string ngaygiahan = String.Format("{0}/{1}/{2}", dateTime_NgayGiaHan.Value.Year, dateTime_NgayGiaHan.Value.Month, dateTime_NgayGiaHan.Value.Day);
            string ngayhethanmoi = String.Format("{0}/{1}/{2}", dateTime_DenNgayMoi.Value.Year, dateTime_DenNgayMoi.Value.Month, dateTime_DenNgayMoi.Value.Day);
            if (_chon == 2)
            {
                tungay = ngaygiahan;
                denngay = ngayhethanmoi;
            }
            if (gpBang.Visible == true && gpBao.Visible == false && gpToBuom.Visible == false)
            {
                pdf = new ExportToPdf();
                Document document = pdf.CreateDocumentPhieuThu1(txtHoTen.Text, txtDiaChi.Text, txtSoDienThoai.Text, txtEmail.Text, txtDiaChiDiaOc.Text, "Quảng Cáo Bảng", txtTongTien.Text, tungay, denngay, txtMaPhieuDangKy.Text);

                if (saveFileDialog.ShowDialog() == DialogResult.OK)
                {

                    string filepath = saveFileDialog.FileName;
                    pdf.SaveFilePdf(document, filepath);
                }
                else
                {
                    MessageBox.Show("lỗi rồi");
                }

            }
            else if (gpBang.Visible == false && gpBao.Visible == true && gpToBuom.Visible == false)
            {
                pdf = new ExportToPdf();
                Document document = pdf.CreateDocumentPhieuThu1(txtHoTen.Text, txtDiaChi.Text, txtSoDienThoai.Text, txtEmail.Text, txtDiaChiDiaOc.Text, "Quảng Cáo Báo", txtTongTien.Text, tungay, denngay, txtMaPhieuDangKy.Text);

                if (saveFileDialog.ShowDialog() == DialogResult.OK)
                {

                    string filepath = saveFileDialog.FileName;
                    pdf.SaveFilePdf(document, filepath);
                }
                else
                {
                    MessageBox.Show("lỗi rồi");
                }
            }
            else if (gpBang.Visible == false && gpBao.Visible == false && gpToBuom.Visible == true)
            {
                pdf = new ExportToPdf();
                Document document = pdf.CreateDocumentPhieuThu1(txtHoTen.Text, txtDiaChi.Text, txtSoDienThoai.Text, txtEmail.Text, txtDiaChiDiaOc.Text, "Tờ Bướm", txtTongTien.Text, tungay, denngay, txtMaPhieuDangKy.Text);

                if (saveFileDialog.ShowDialog() == DialogResult.OK)
                {

                    string filepath = saveFileDialog.FileName;
                    pdf.SaveFilePdf(document, filepath);
                }
                else
                {
                    MessageBox.Show("lỗi rồi");
                }
            }
            else if (gpBang.Visible == true && gpBao.Visible == true && gpToBuom.Visible == false)
            {
                pdf = new ExportToPdf();
                Document document = pdf.CreateDocumentPhieuThu2(txtHoTen.Text, txtDiaChi.Text, txtSoDienThoai.Text, txtEmail.Text, txtDiaChiDiaOc.Text, "Quảng Cáo Bảng", "Quảng Cáo Báo", txtTongTien.Text, tungay, denngay, txtMaPhieuDangKy.Text);

                if (saveFileDialog.ShowDialog() == DialogResult.OK)
                {

                    string filepath = saveFileDialog.FileName;
                    pdf.SaveFilePdf(document, filepath);
                }
                else
                {
                    MessageBox.Show("lỗi rồi");
                }
            }
            else if (gpBang.Visible == true && gpBao.Visible == false && gpToBuom.Visible == true)
            {
                pdf = new ExportToPdf();
                Document document = pdf.CreateDocumentPhieuThu2(txtHoTen.Text, txtDiaChi.Text, txtSoDienThoai.Text, txtEmail.Text, txtDiaChiDiaOc.Text, "Quảng Cáo Bảng", "Quảng Cáo Tờ Bướm", txtTongTien.Text, tungay, denngay, txtMaPhieuDangKy.Text);

                if (saveFileDialog.ShowDialog() == DialogResult.OK)
                {

                    string filepath = saveFileDialog.FileName;
                    pdf.SaveFilePdf(document, filepath);
                }
                else
                {
                    MessageBox.Show("lỗi rồi");
                }
            }
            else if (gpBang.Visible == false && gpBao.Visible == true && gpToBuom.Visible == true)
            {
                pdf = new ExportToPdf();
                Document document = pdf.CreateDocumentPhieuThu2(txtHoTen.Text, txtDiaChi.Text, txtSoDienThoai.Text, txtEmail.Text, txtDiaChiDiaOc.Text, "Quảng Cáo Báo", "Quảng Cáo Tờ Bướm", txtTongTien.Text, tungay, denngay, txtMaPhieuDangKy.Text);

                if (saveFileDialog.ShowDialog() == DialogResult.OK)
                {

                    string filepath = saveFileDialog.FileName;
                    pdf.SaveFilePdf(document, filepath);
                }
                else
                {
                    MessageBox.Show("lỗi rồi");
                }
            }
            else if (gpBang.Visible == true && gpBao.Visible == true && gpToBuom.Visible == true)
            {
                pdf = new ExportToPdf();
                Document document = pdf.CreateDocumentPhieuThu3(txtHoTen.Text, txtDiaChi.Text, txtSoDienThoai.Text, txtEmail.Text, txtDiaChiDiaOc.Text, "Quảng Cáo Bảng", "Quảng Cáo Báo", "Quảng Cáo Tờ Bướm", txtTongTien.Text, tungay, denngay, txtMaPhieuDangKy.Text);

                if (saveFileDialog.ShowDialog() == DialogResult.OK)
                {

                    string filepath = saveFileDialog.FileName;
                    pdf.SaveFilePdf(document, filepath);
                }
                else
                {
                    MessageBox.Show("lỗi rồi");
                }
            }



        }

    }
}
